Gather all ingredients. Preheat the oven to 350 degrees F (175 degrees C). Spray a 9x13-inch baking dish with cooking spray.
Melt butter in a saucepan over medium-low heat; cook and stir onion in the melted butter until softened, about 5 to 10 minutes. Add mustard, poppy seeds, and Worcestershire sauce; cook and stir for 5 minutes.
Arrange the roll bottoms in the prepared baking dish. Spoon 2/3 of the onion mixture over top.
Layer ham and Swiss cheese evenly over the roll bottoms.
Place the roll tops over the cheese layer, then brush the remaining onion mixture over top.
Cover the dish with aluminum foil.
Bake in the preheated oven for 15 minutes. Remove aluminum foil and bake until the roll tops are lightly browned, about 5 to 10 minutes.