I would definitely put her on a feeding schedule - especially if she has such a voracious appetite. Excess weight puts undue stress on her little body and her joints, and just like for humans, it's not healthy. I would say at 2lbs, if you give her 3 meals a day she should be ok (plus the occasional treat) and make sure she has lots of water. Are you giving her a lot of treats in addition to her food? If so, you could always try using pieces of her kibble as a treat - it really does work - if you hold one piece, they think it's a treat, and really it's just their same old food. Or, check the food your feeding her for the recommended serving amounts for a 2lb dog - if it recommends say, 1/3 of a cup a day, you could split that up into several small feedings, so she always has something in her tummy but the amount she gets is controlled. As she gets bigger, you can gradually reduce the number of feedings until she's getting 2 a day. It was hard for me at first with Oscar to see those few little bits of kibble sitting in his bowl and think it looked so empty and that it couldn't possibly be enough for him - BUT, if you look at how small your puppy is and consider how tiny her little stomach must be, picture that when you're putting out food. You don't want to starve her obviously, but I've always heard that freefeeding was a no-no (just my opinion though)... 2lbs at 3mths by no means sounds heavy, but I dont know what her build is like. Can you still feel her ribs a little bit under her skin? If you can, then she's probably at a good, healthy weight.
Sorry, this was ridiculously long.... my bf says I'm long winded, I wonder why?