The sum function has the optional start argument which defaults to 0. Quoting the linked page:
sum(iterable[, start])Sums start and the items of an iterable from left to right and returns
the total
Set start to (empty) Counter object to avoid the TypeError:
In [5]: sum(counter_list, Counter())
Out[5]: Counter({'b': 5, 'c': 4, 'a': 1})