You are using default category
for custom post type. You can instead use a taxonomy query to get filtered result based upon your custom taxonomy terms.
Try this –
$cat_ids = array();
$postID = get_the_ID();
$categories = get_the_terms($postID, 'custom_taxonomy_name'); //this will give all the terms
foreach($categories as $cat) {
$cat_ids[] = $cat->term_id; //you may put some condition and consider only some specific terms as per your requirement
}
$args = array(
'post_type' => 'article',
'posts_per_page' => 3,
'tax_query' => array(array(
'taxonomy' => 'custom_taxonomy_name',
'field' => 'id',
'terms' => $cat_ids //ids of specified terms
)
)
);