I wish to have mulitple teaport in the scene.
Which means i have to initialise my teaport object like the following:

"have to"? It's your code; you don't "have to" anything.

This is a trivial software engineering problem. Your problem is that your "Teapot" object represents not only a mesh, but the position and orientation of that mesh in the world. Separate these two concepts.

You need a "mesh" object that represents a particular set of vertex data. And you need an object that represents the position and orientation of something in the world.

but i do not wish to do this for my draw and load:

Then don't. Make a separate function that loads a model one time. Then give references to that model to the objects that need them. Your "Teapot" constructor should be given a model; it should neither own or load it.