get_posts output always same post

This is because you are not passing the parameters in the correct way, taxonomy param needs to be passed under tax_query. Please replace the $args with the below:–

$args = array(
    'posts_per_page' => 4,
    'tax_query' => array(
        array(
            'taxonomy' => 'tag',
            'field' => 'slug',
            'terms' => 'pp'
        )
    )
);

For more details check the codex