1. Cook the bacon in a medium skillet over medium heat until crisp; remove the bacon with a slotted spoon and set it aside on a paper towel to drain.
2. Discard all but 1 tablespoon of the bacon fat remaining in the skillet. Add the 4 tablespoons butter, and when it has melted, add the onion, garlic, salt, black pepper, and crushed red pepper. Cook, stirring as needed, until the onion is very soft, about 10 minutes. Add the artichokes and cook for 2 minutes longer. Add 1 bag of spinach and cook until wilted, about 2 minutes; then add the second bag and cook, stirring as needed, for 4 minutes, until the spinach is tender and the flavors have blended. Remove from the heat.
3. Set a strainer over a bowl, and add the spinach- artichoke mixture to it. Allow the excess liquid to drain, about 5 minutes.
4. In a medium mixing bowl, combine the three cheeses. Then add the warm spinach mixture and stir until nicely combined and the cheese has begun to melt. Stir in the bacon.
5. To assemble: Evenly spread a packed 1/2 cup of filling between 2 slices of bread. Butter each side of the sandwich with about 1 teaspoon of the softened butter. Repeat with the remaining ingredients.
6. Heat a skillet or grill pan over medium heat. Cook the sandwiches, in batches, until they are browned on each side and the filling is warmed through, about 6 minutes. Cut the sandwiches, in half, and serve immediately.
Yield: 8 sandwiches