Loading page template into shortcode

get_template_part takes slug as first parameter and not filename.

So it should be:

get_template_part( 'template-sponsors' );

And with more details… This function takes two parameters:

get_template_part( string $slug, string $name = null )

And inside of it, the name of a file is built like this:

if ( '' !== $name )

        $templates[] = “{$slug}-{$name}.php”;
 
    $templates[] = “{$slug}.php”;

So, as you can see, the .php part is added automatically. So your code will try to load file called template-sponsors.php.php and there is no such file, I guess.