Storing query variable and then using wp_reset_query

wp_reset_query(); resets the query to the original main query of the page.

Therefore, storing the query in another variable is redundant and unnecessary.

Updated code:

$args = array(
    'cat' => 15,
    'paged' => $paged
);  
$custom_query = new WP_Query( $args );

while ($custom_query -> have_posts()) : $custom_query -> the_post();
endwhile;

my_pagination();    //call function
wp_reset_query();   //#3. reset query