Automatically create child custom post when creating a custom post

Rather than create another post which appears to be for the sole purpose of rendering a different template, I would add a rewrite endpoint to support an additional segment at the end of artist URLs. In this case, your URLs will be:

www.example.com/artist/artist-name/hire/

The advantage of this is that all data pertaining to an artist can remain within the single artist post. When these posts are rendered on the front end, the queried object contains the artist data, no connection of multiple posts is necessary.

To accomplish this, we first add the endpoint:

function wpd_hire_endpoint(){
    add_rewrite_endpoint( 'hire', EP_PERMALINK );
}
add_action( 'init', 'wpd_hire_endpoint' );

Note that if your post type is hierarchical, you’ll need to use the EP_PAGES endpoint mask instead of EP_PERMALINK.

Next, add a filter to single_template to load the hire template when those URLs are visited:

function wpd_hire_template( $template="" ) {
    global $wp_query;
    if( ! array_key_exists( 'hire', $wp_query->query_vars ) ) return $template;

    $template = locate_template( 'hire.php' );
    return $template;
}
add_filter( 'single_template', 'wpd_hire_template' );

Remember to flush rewrite rules after adding the endpoint.

EDIT- adding an additional rewrite rule to achieve alternate URL structure:

add_rewrite_rule(
    'hire-artist/([^/]+)/?$',
    'index.php?artist=$matches[1]&hire=true',
    'top'
);