Place ground beef, bread crumbs, cheese, eggs, parsley, garlic powder, sour cream and salt and pepper in a large mixing bowl. Mix gently with your hands being careful not to over work.
Using an ice cream scoop, roll mixture into 1 1/4 inch balls. Place on a parchment lined baking sheet and cook at 375 degrees for 30 minutes or until brown.
Heat olive oil in large stock pot. Add onion and cook on medium low heat until onions are translucent. Add garlic and cook for approximately 2 minutes being careful not to burn. Add tomatoes and remaining ingredients. Simmer on low for 15 minutes. This can be done while meatballs are cooking in oven. When meatballs are done, add to the sauce and simmer for 30 minutes.
Spread butter inside each of the split top rolls. Sprinkle with garlic powder. Press rolls open and place on a baking sheet. Toast in oven until slightly brown. Remove from oven.
Carefully stuff each roll with two meatballs and ladle on extra sauce. Top with shredded Mozzarella cheese. Set oven to broil and place baking sheet in oven. Watching so that the bread does not burn, broil the subs until cheese is melted. Remove from oven and sprinkle with Parmesan cheese and serve immediately.