How to union two views and pass on arguments
What you can do is to load and execute the $view_by_author view as you are doing but passing the by_year  arguments/contextual as this:
$arguments = [$view_by_year-&gt;build_info['parameter_you_need']];

$view_by_author = Views::getView('music_by_author');
$view_by_author-&gt;setArguments($arguments);
$view_by_author-&gt;setDisplay('block_1');
$view_by_author-&gt;preExecute();
$view_by_author-&gt;execute(); // or build, etc

I believe something like this would work for you.
Also, there is a module called Views Field View that might do what you are trying to do.