Since Woocommerce 3 your actual code is a bit outdated. In the following you will get all products names (coma separated) in the email subject.
add_filter('woocommerce_email_subject_new_order', 'change_admin_email_subject', 10, 2);
function change_admin_email_subject( $subject, $order ) {
$products_names = array();
foreach ( $order->get_items() as $item ) {
$products_names[] = $item->get_name();
}
return sprintf( '[%s] New Customer Order (#%s) of %s from %s %s',
wp_specialchars_decode(get_option('blogname'), ENT_QUOTES),
$order->get_id(),
implode(', ', $products_names),
$order->get_billing_first_name(),
$order->get_billing_last_name()
);
}