Optimise WP custom post type query

Your big issue here is, you are running a custom query in place of the main query which you should never ever do. I have done a quite extensive post on this very issue, you be sure to properly read that post first. By going back to the default loop and using pre_get_posts to alter the main query accordingly, you will save a huge amount of db calls. Remember, even if you delete the main loop and replace it with a custom one, the main query still runs normally. By replacing the main query with a custom one only leads to more extra work and db calls being done. It is like doing the same exact job twice and only getting paid once.

You also need to remember that, post thumbnails does not get cached for custom queries, so this alone leads to 2 extra db calls per post. That is why you see the huge amount of queries from your custom query. You can have a look at this post on how to optimize this

EDIT

You should replace your code in your archive page which is in your question with the following code. You should not have any custom query in place of the main query.

<?php
    if( have_posts() ):
        while( have_posts() ): 
            the_post(); 
            ?>

            <li class="venue-item"  itemscope="" itemtype="http://schema.org/Article">
                <div class="featured-image">
                    <a href="https://wordpress.stackexchange.com/questions/222401/<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark">
                        <?php the_post_thumbnail();?>
                    </a>
                </div>

                <div class="one-third">
                    <div class="venue-description">
                        <a href="<?php echo get_permalink();?>"><h3 itemprop="headline">
                            <?php echo get_the_title(); ?> </h3>
                        </a>
                        <p itemprop="description">
                            <?php the_excerpt() ?>
                        </p>
                    </div>
                </div>
            </li>
            <?php 
        endwhile; 
    endif; 
?>

This should see a drop in queries. All you need to do now is to alter the main query to suit your needs

add_action( 'pre_get_posts', function ( $q )
{
    if (    !is_admin()
         && $q->is_main_query()
         && $q->is_post_type_archive( 'venues' )
    ) {
        $q->set( 'order',          'ASC'        );
        $q->set( 'orderby',        'menu_order' );
        $q->set( 'posts_per_page', 15           );
    }
});