Single field to search for matches on post ID or meta values

Use this code instead-

$args = array(
    'post_type'       => 'shop_order',
    'posts_per_page'  => '-1',
    'post_status'     => array_keys( wc_get_order_statuses() ),
    'meta_query'      => array(
        'relation'    => 'OR',
        array(
            'key'     => '_billing_first_name',
            'compare' => 'LIKE',
            'value'   => $_GET['sc'], // you should escape this
        ),
        array(
            'key'     => '_billing_last_name',
            'compare' => 'LIKE',
            'value'   => $_GET['sc'], // you should escape this
        )
    )
);

// if there is an order that has the same ID as what user inputs, include that in the query too
if( 'shop_order' == get_post_type( $_GET['sc'] ) ) {
    $args['p'] = $_GET['sc']; // you should escape this
}