I suppose it is possible that his body is craving protein -- or, like me when I was 5ish, my taste buds didn't like what mom chose to fix. My taste buds hated it!
I wasn't spoiled in anyway but I didn't want to tell her that I didn't like anything she cooked except a few meals -- and she repeated those few dishes every week. ugh Also, Back then, people didn't use fruit or vegetables much unless it was canned.
So, I liked cereal (Rice Krispies) with milk and buttered toast. I wanted it about 3 nights a week. Mom had a hissie, dad thought I'd finally get sick of it. Which I did. (Not that I ever stopped wanting it occasionally at night to this day.)
I've also heard that 3 year olds can be very demanding about always eating finger foods. I don't understand that, but my nieces have tried to get around this by turning anything they can think of into finger food (including green beans).
Don't let your 3 year old know that he is in charge and can get his way or you'll set yourself up for trouble in all categories. Also, I'd bet he's not getting enough vegetables.
Maybe you make a rule that if he doesn't eat what you're eating for the protein, he must have a balanced meal by eating an equal amount of finger foods like baby carrots and pineapple chunks / or celery sticks (with or without a dip) and banana chunks. So, give a small serving of each and he doesn't get the next cracker until he eats the other two things (plus milk of course to drink). Then offer a second round, etc. so he can't fill up on crackers/pb and tell you he's full.