php if, else & custom fields – syntax error

There are a couple of ways to do it. Try:

<?php if ( get_post_meta($post->ID, 'author-photo', 'author-name', 'author-bio', true) ) { ?>

    <div class="authorbox">
        <div class="authorphoto">
            <img src="https://wordpress.stackexchange.com/questions/200118/<?php $key="author-photo"; echo get_post_meta($post->ID, $key, true); ?>"     />
        </div>
        <div class="authorbox-content">
            <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3>
            <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p>
        </div>
    </div>

<?php } ?>

<?php else { ?>

    <?php if ( get_post_meta($post->ID, 'author-name', 'author-bio', true) ) { ?>
        <div class="authorbox">
            <div class="authorbox-content-nophoto">
                <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3>
                <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p>
            </div>
        </div>
    <?php } ?>

<?php } ?>