M.P.
I suggest that you start arranging his meal time the way you want it to be. Have him eat at home the way he's expected to eat at preschool. He won't starve. Sounds like right now he's "winning" in a power struggle.
At 2 he's testing to see what he can control. In reality he really only has control over what he puts in his mouth and how he ejects it. Perhaps giving him more choices in other areas of his life might help. As for eating, you can't force him to eat and it's not good to only give him his favorites. He does need to learn how to eat good food. So provide only reasonably good food.
I suggest that you give him one of the foods that he likes along with a small helping of the foods that the rest of the family is eating. Be very matter of fact about it. "This is what we are eating." When he's thru eating take the plate and food away. Remind him that there will be no eating until the next meal time or the next snack time. Three meals plus 2 snacks/day. Give him healthy food for his snack. He won't starve. He will eat when he's hungry.
The key to success is to let him know by word and deed that whether or not he eats is his decision. You provide the food and he decides whether or not he's going to eat it. He will eat once he realizes that you mean business. Put the food in front of him and then don't bug him. You can suggest that he eat or feed him but if he doesn't eat don't nag. You're letting him know that it's no big deal and it's his decision. Poof! There's nothing to fight about when you say, this is the way it is and then stop talking.
When he doesn't eat most of his lunch does anyone give him what he wants for a snack? IF so, stop them from doing it. He does need to be hungry before he'll eat anything other than his favorites.