tribe_get_start_time displays the current date and time on other post types than tribe_events

There are various ways to solve this. First coming to mind are checking via is_singular() or get_post_type(). Using the latter you could write

foreach( $posts as $p ):
    setup_postdata( $p );

    $post_type = get_post_type($p);

    if ($post_type === Tribe__Events__Main::POSTTYPE) {
    //or: if ($post_type === 'tribe_events') {

        // Display the date of the event
        $p_event = tribe_get_start_time ( $p->ID, 'j F à H \h i' );

        if ( $p_event ) { 
            echo $p_event;          
        }
        else '';
    }
endforeach;