You're describing an extremely common problem. My grandson, and a neighbor boy I sometimes babysat, went through the same phase. Neither were required to eat when they weren't hungry, which meant some days they ate almost nothing at all. Toddler appetites can be extremely tiny and variable.
And while my grandson would eat a few favorite vegetables, the neighbor child would not. His parents decided after months of struggle that they wouldn't force him. He ate some fruit but not a scrap of veggies for about 1.5 years, and then spontaneously started eating just about anything willingly. Soon after, he was ordering salads in restaurants as his main dish.
Both kids came through this period, which in many kids can run anywhere between 18 months and 4-5 years, in good health. Neither lost weight, even when they had no appetite for several days running. Research suggests that this low-appetite, fussy period is natural, and probably nature's way of helping small children avoid poisoning – in hunter-gatherer societies, they'd be less likely to ingest something toxic or spoiled.
And anxious parents tend to overestimate how much food their kids "should" be eating. A multivitamin can probably cover a multitude of missed meals. New foods should be introduced only gradually, so a major overhaul of his diet now will probably just frustrate you both.
So, generalizing from a sample of two, plus stories from many other parents, I'd suggest that you not turn mealtimes into a battle. That is known to cause difficult eating issues later in some children. And the more you can resist giving in a feeding food that is high in salt, fat, sugar, refined starches, and artificial colors and flavors, the better you son's eating habits will probably remain. Once they acquire a taste for "junk," it's much harder to shift to healthier foods later.