Thank you everyone for these suggestions !
I wanted to set "Elementor canvas" template by default on post only and I did like that :
function default_post_template_elementor_canvas($post_type, $post)
{
$wishedTemplate = 'elementor_canvas'; // to see available template var_dump(get_page_templates($post))
if ($post_type === 'post'
&& in_array($wishedTemplate, get_page_templates($post)) // Only if elementor_canvas is available
&& $post->ID != get_option('page_for_posts') // Not the page for listing posts
&& metadata_exists('post', $post->ID, '_wp_page_template') === false) { // Only when meta _wp_page_template is not set
add_post_meta($post->ID, '_wp_page_template', $wishedTemplate);
}
}
add_action('add_meta_boxes', 'default_post_template_elementor_canvas', 10, 2);