**EDIT - ANSWER REVISITED**

I've being working on another solution which is actually better the original answer. This does not involve any custom query and I think for all purposes my original answer can be dropped but kept for informational purposes

As you are not replying to my comments and not giving me any feedback, I still believe you are on the homepage. So this is my new solution

**STEP 1**

Remove the custom query from the homepage and replace it with the default loop

    <?php
		
			if ( have_posts() ) :
				// Start the Loop.
				while ( have_posts() ) : the_post();
			
					///<---YOUR LOOP--->
			
				endwhile;
					
					//<---YOUR PAGINATION--->	
					
				else : 

					//NO POSTS FOUND OR SOMETHING	
					
				endif; 
				
		?>

**STEP 2**

Use `pre_get_posts` to alter the main query to add your custom taxonomy to the main query to display on the home page.

**STEP 3**

Now, get the `posts_per_page` option set from the back end (which I assume is 2) and also set your `offset` which we are going to use. That will be `1` as you will need 3 posts on page one and 2 on the rest

    $ppg = get_option('posts_per_page');
    $offset = 1;

**STEP 4**

On page one, you'll need to add the `offset` to `posts_per_page` will add up to 3 to get your three posts on page one. 

    $query->set('posts_per_page', $offset + $ppp);

**STEP 5**

You must apply your `offset` to all subsequent pages, otherwise you will get a repetition of the last post of the page on the next page

    $offset = $offset + ( ($query->query_vars['paged']-1) * $ppp );
    $query->set('posts_per_page',$ppp);
    $query->set('offset',$offset); 

**STEP 6**

Lastly, you need to subtract your offset from `found_posts` otherwise your pagination on the last page will be wrong and give you a `404` error as the last post will be missing due to the incorrect post count

    function homepage_offset_pagination( $found_posts, $query ) {
        $offset = 1;
    
        if( $query->is_home() && $query->is_main_query() ) {
            return( $found_posts - $offset );
        }
    }
    add_filter( 'found_posts', 'homepage_offset_pagination', 10, 2 );

**ALL TOGETHER**

This is how your complete query will look like that should go into functions.php

    function tax_and_offset_homepage( $query ) {
      if ($query->is_home() && $query->is_main_query() && !is_admin()) {
    	$query->set( 'post_type', 'my_post_type' );
    	$query->set( 'post_status', 'publish' );
    	$query->set( 'ignore_sticky_posts', '-1' );
    	$tax_query => array(
    		array(
    			'taxonomy' => 'my_taxo',
    			'field' => 'slug',
    			'terms' => array('slug1', 'slug2', 'slug3')
    		)
    	)
    	$query->set( 'tax_query', $tax_query );
        $ppp = get_option('posts_per_page');
        $offset = 1;
        if (!$query->is_paged()) {
          $query->set('posts_per_page',$offset + $ppp);
        } else {
          $offset = $offset + ( ($query->query_vars['paged']-1) * $ppp );
          $query->set('posts_per_page',$ppp);
          $query->set('offset',$offset);
        }
      }
    }
    add_action('pre_get_posts','tax_and_offset_homepage');
    
    function homepage_offset_pagination( $found_posts, $query ) {
        $offset = 1;
    
        if( $query->is_home() && $query->is_main_query() ) {
            return( $found_posts - $offset );
        }
    }
    add_filter( 'found_posts', 'homepage_offset_pagination', 10, 2 );

----------------------------------------------------------------------------

**ORIGINAL ANSWER**

What you want to do is not possible with pagination. However there are a work around

This is how I will do it

- Get the current page you are on with `$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;`

- Run a custom query in which you get the first post, which will most probably be the newest one. 

- Do a check to see if you are on page 1, if yes, execute this custom query, if not, do execute this custom query

OK, this is part one. Here is the code

    <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    
    if( 1 == $paged ) {
    
    	$args1 = array(
    		'post_type' => 'my_post_type',
    		'post_status' => 'publish',
    		'posts_per_page' => 1,
    		'ignore_sticky_posts' => -1, // remove sticky post
    		'tax_query' => array(
    			array(
    				'taxonomy' => 'my_taxo',
    				'field' => 'slug',
    				'terms' => array('slug1', 'slug2', 'slug3')
    			)
    		)
    	);
    
    	$post1 = new WP_Query( $args1 );
    
    	if ( $post1->have_posts() ) : 
    
    		while ( $post1->have_posts() ) : $post1->the_post(); 
    	
    			//YOUR LOOP ELEMENTS GOES HERE
    	
    		endwhile; 
    		wp_reset_postdata(); 
    	endif; 
    	
    }
    ?>

Now come the tough part. `offset` is one of the anti-user-friendly parameters to work with. I believe that you are on the homepage from what I can gather. So I'm going to handle this as if you are.

Here is how this will work

- First of all, I would completely drop the custom query and revert back to the default loop on the homepage. It will makes things more easier and is the more correct way of doing things. Also you will not need any other parameters to set for pagination to work correctly, you can just use default pagination

- Use [`pre_get_posts`][1] to alter the main query accordingly to set your term on the homepage

- Together with this, still inside `pre_get_posts` set your `offset`

- You'll also need to subtract your offset from `found_posts` otherwise your pagination will not work correctly

So, on your homepage you will have

    <?php
		
			if ( have_posts() ) :
				// Start the Loop.
				while ( have_posts() ) : the_post();
			
					///<---YOUR LOOP--->
			
				endwhile;
					
					//<---YOUR PAGINATION--->	
					
				else : 

					//NO POSTS FOUND ORSOMETHING	
					
				endif; 
				
		?>

Now, the following code will go into functions.php. This is a heavily modified version of code found in [this answer][2] from  [its_me][3],my own code and your code

    function tax_and_offset_homepage( $query ) {
        $offset = 1;
        $ppp = get_option( 'posts_per_page' );
        $paged = $query->query_vars[ 'paged' ];
    
        if( $query->is_home() && $query->is_main_query() ) {
    		$query->set( 'post_type', 'my_post_type' );
    		$query->set( 'post_status', 'publish' );
    		$query->set( 'ignore_sticky_posts', '-1' );
    		$tax_query => array(
    			array(
    				'taxonomy' => 'my_taxo',
    				'field' => 'slug',
    				'terms' => array('slug1', 'slug2', 'slug3')
    			)
    		)
    		$query->set( 'tax_query', $tax_query );
            if( !is_paged() ) {
    
                $query->set( 'offset', $offset );
    
            } else {
    
                $paged_offset = $offset + ( ($paged - 1) * $ppp );
                $query->set( 'offset', $paged_offset );
    
            }
        }
    }
    add_action( 'pre_get_posts', 'tax_and_offset_homepage' );
    
    function homepage_offset_pagination( $found_posts, $query ) {
        $offset = 1;
    
        if( $query->is_home() && $query->is_main_query() ) {
            return( $found_posts - $offset );
        }
    }
    add_filter( 'found_posts', 'homepage_offset_pagination', 10, 2 );

This should give you a basic idea on how to solve your problem. Please feel free to modify all these code to suite your needs

  [1]: http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts
  [2]: http://wordpress.stackexchange.com/a/124426/31545
  [3]: http://wordpress.stackexchange.com/users/10691/its-me