My 4 year old is a fussy eater too, and on the skinny side. I have found the main thing is to keep offering her good, healthy family food - not a special meal just for her - and not to offer her a second choice if she doesn't want it. If she is hungry later, offer her the food she should have eaten earlier (if it is still OK to eat).
My daughter takes a packed lunch to the childminder and often brings it back uneaten, then complains she is hungry at 4pm! So she often ends up eating it at teatime instead, so then she doesn't eat her tea ... but I prefer this to throwing food away. She will sometimes eat fruit if she has missed her lunch, so I see this as an opportunity to get some fruit into her!
We always have plain bread and butter on offer so she won't go to bed hungry if she hasn't eaten her meal.
I made the mistake of pleading with her to eat when she was younger and I think this has made her a bit manipulative where food is concerned. I won't make the same mistake with my second (who is a much better eater).
If your daughter has plenty of energy there probably isn't anything wrong with her.
Try not to worry - she won't starve! The foods you describe include protein, carbohydrate and a range of vitamins.
Try the food she doesn't like cooked in different ways. If she doesn't like veg, try giving her home made vegetable soup with her toast, or roasted veg with pasta. Try mashed or jacket potato instead of chips.
As she is nearly 3, does she go to playgroup? Could you arrange for her to go to a friend's house to play and have lunch? My daughter will often eat more at someone else's house and try new things.
I tried making the food into nice pictures or funny faces but it didn't make her eat any more, so that was a waste of time ...
Have you seen the thread on selective eaters? It contains lots of good advice.
Hope this helps. We are not alone!