get_the_catgory()
returns an array of category objects assigned to a post. You are trying to use the result as a string. If you have debugging enabled, you would have received an error regarding this.
You either need to loop through the array and handle each category separately, or you can reference them directly, like get_the_category()[0]
would return the first category object
Lets say you would want to show only the first category, then the following line
$html .= '<span class="item-sub-aut"><a href="'.$subaut.'" title="'.get_category_link().'">'.get_category_link().'</a></span>';
would become
$html .= '<span class="item-sub-aut"><a href="'. esc_url( get_category_link ( $subaut[0] ) ) .'" title="'. $subaut[0]->name.'">' . $subaut[0]->name . '</a></span>';
EDIT
If you need to display all the categories separated by a comma, you can do the following
$subaut = get_the_category();
foreach ( $subaut as $cat )
$array[] = '<span class="item-sub-aut"><a href="'. esc_url( get_category_link ( $cat ) ) .'" title="'. $cat->name.'">' . $cat->name . '</a></span>';
$html .= implode( ', ', $array );