WordPress override archive page template using a plugin

You should create a filter to the archive_template template hook.

function use_custom_template($tpl){
  if ( is_post_type_archive ( 'books' ) ) {
    $tpl = plugin_dir_path( __FILE__ ) . '/tpl/dir/books-archive.php';
  }
  return $tpl;
}

add_filter( 'archive_template', 'use_custom_template' ) ;