Whats the best method of instantiating sprites? I used to use game objects as prefabs and instantiating them using a public reference, however Instantiate function doesn't work with Sprite references. Lets say if I have a bullet object as sprite, Should I add sprites to game objects as child and then use those as prefabs to instantiate new items?
You can definitely use prefabs for your sprites. It's the easiest and recommended way to instantiate things.
So should I add my sprite as a child object to a game object and then use that game object as prefab, right?
You can either drag a sprite onto your scene and create a prefab from that or use a child container if you need to.
Official guide to Instantiating Prefabs at runtime: http://docs.unity3d.com/Documentation/Manual/InstantiatingPrefabs.html