https://prometheus.io/docs/prometheus/latest/querying/operators/#one-to-one-vector-matches
When you do a binary operation between two instant vectors, be default they must have exactly the same set of labels.
As long as all the other labels are the same, you can do this:
probe_success{instance="192.168.0.2",job="blackbox_tcp_general"} + ignoring(instance) probe_success{instance="172.170.220.31",job="blackbox_tcp_general"}
Or you can rewrite your expression to use "sum" across multiple timeseries:
sum(probe_success{instance=~"192\.168\.0\.2|172\.170\.220\.31",job="blackbox_tcp_general})
{instance="server1",address="192.168.0.2"}
{instance="server1",address="172.170.220.31"}
That would allow you to do
sum by (instance) (probe_success{job="blackbox_tcp_general"})