Get custom post type list for every category shortcode

You are not dealing with categories. You are dealing with a custom taxonomy.

$postlist_args = array(
  'posts_per_page'   => -1,
  'offset'           => 0,
  // 'category'      => $category->cat_ID, // not this
  'tax_query'        => array(
    array(
      'taxonomy' => 'cars_category',
      'field'    => 'id',
      'terms'    =>  $category->term_ID,
    )
  ),
  'orderby'          => 'post_date',
  'order'            => 'DESC',
  'post_type'        => 'msccar',
  'post_status'      => 'publish'
);

That is untested, and to test it would require a bit of setup on my end– creating the taxonomy, posts, etc.– but that should be the idea.

I should point out that while this (or some variation) should work, it also has the potential to be very inefficient. You are going to run one database query for the categories plus one query per category returned. You can easily have 30, 40, 50, or more queries from that block of code alone.

It is my experience that it is nearly always more efficient to run as few queries as possible and shuffle the results in PHP.

See: https://wordpress.stackexchange.com/a/91263/21376