Quoting I♡C.:" He's a big pasta eater, but gets his meats through bologna, hot dogs, and breakfast sandwiches. He likes ... [snip!] ... sandwiches. He likes grapes & oranges as far as fruits go, but won't touch veggies. I mix baby food veggies into pastas."
He is 3. He should be eating a wide variety of foods. If you and your SO eat healthy balanced meals with real food then he should eat the same thing that you eat. At snack time offer healthy choices like fruit, yogurt, veggies and dip etc... Always give a choice of three healthy items. If he doesn't want any of the three you offer to he can wait until the next meal or snack time. Healthy kids will not starve themselves. Eventually he will get hungry enough to eat real food. There is nothing wrong with processed food (deli meats, hotdogs, etc...) in moderation but he shouldn't be getting it at every meal. There are lots of other protien options: beans, hummous, fish, chicken, prawns, nuts, lentils, soy, eggs, turkey, beef, pork, lamb, bison... Kids get picky because we sometimes cave and give them what they ask for instead of having our own plan of what to serve but if it happens all the time they get too picky and it doesn't benefit anyone.
As for veggies, they should always be one of the three items offered. Eventually he will find one he likes. I reccomend trying asparagus sauteed in butter - lots of vitamins but tastes buttery good. Squash is great this time of year and you can get lots of yummy recipes for different ways to prepare it. Try offering veggies with different textures on different days: raw, roasted, sauteed, steamed, etc... and try a variety of different sauces or plain as well. As long has he takes a taste of each option let him decide how much to have. He will choose to have more veggies at some point.