S.H.
My son has been picky since he was on solids at 6 months old. He is 4.5 years old now.
We don't force or give rewards or punishments.
As he has gotten older, HE has NATURALLY expanded his palate.
Its a natural thing.
My son is healthy, grows like a weed, and so its fine.
No biggie.
He only eats until he is full. He only eats if he is hungry.
He KNOWS his body's cues.
That is how it should be.
Not eating according to emotional hang-ups or forced or by a time clock.Or eating according to MY.... preferences.
We never, 'battle' about eating or food.
We don't have junk in the house.
So the way he eats, is fine. He does not eat junk.
Your son does not eat sandwiches, but eats bagels. I don't see that as a problem. He likes bagels. Not sandwiches. He knows what he likes. And what he does not like.
I like bagels. I'm not into sandwiches unless I am craving it. I am not 'picky." I eat all sorts of foods. But everyone has preferences. Even adults.
I don't expect my entire family to eat like me or like what I like. I cook, and my family eats it. I know no matter what I cook, they will eat, or eat something from it. I know what they like or not. They eat anything pretty much, except my son. But again... my son eats. Just not as much as us or as diverse. For now.