Kids have little stomachs. Don't expect a toddler to eat an adult portion. The rule of thumb is one tablespoon of food per year of age. A serving of a protein food is one ounce. And you should count one half of a slice of bread as a serving.
Little stomachs can fill up fast on high fiber foods.
It is okay to serve some refined grains. Foods like nut butters, avocados, and tofu give more concentrated calories without overfilling small stomachs. Children this age are learning to make decisions and become more independent. They develop preferences as to what toy animal to sleep with, what clothes to wear, and what music to listen to. Unfortunately, this includes food.