Heat the oven to 350 degrees F.
In a small bowl, drizzle the tomatoes with oil and season with salt and pepper, to taste. Line a baking sheet with parchment paper and put a cooling rack on top. Arrange the tomato slices on the rack. Roast until the tomatoes begin to caramelize on the edges, 20 to 25 minutes. Remove and let cool, then gently chop.
Pile the cilantro, onion, lime zest and a pinch of salt together on a cutting board. Chop vigorously until finely minced and combined. Mix in the chopped tomatoes.
On a griddle or a saute pan large enough to fit the sandwiches, add half of the butter on medium- high heat. Build the sandwiches directly on the grill by putting 1 slice of bread on the pan, making sure the bread gets moistened with the butter. Top with a slice of cheese, evenly sprinkle with 1 tablespoon of the onion-tomato mixture, a second slice of cheese and then top with another piece of bread. Repeat for the rest of the sandwiches, gently pressing down each sandwich with a spatula. After the cheese begins to melt a bit, check the bottom of the sandwich for color and if golden brown, gently flip. Add the other half of the butter around the edges and gently press each sandwich while toasting the second side. Remove when the bottom reveals a golden brown color and the cheese is melted, about 4 minutes. Arrange on serving plates and serve.