While you cannot blindly add any intervals, assuming that those are lower and higher bounds, it's easy. If you only care about adding the intervals and learning what would be the interval for the sum, this can be solved with interval arithmetic. The sum of the intervals is
$$
[x_1, x_2] + [y_1, y_2] = [x_1+y_1, x_2+y_2]
$$
so you only need to sum lower bounds together and upper bounds together for the lower and upper bound of the sum. This gives you a conservative estimate (worst case, best case).
For data represented as the lower end, higher end, and the mode, there is a very simple probability distribution to represent it, the triangular distribution. It is popular because of its simplicity. You can use the distribution to conduct a Monte Carlo simulation to answer the question about the possible range of the values given the information provided. For the simulation, we will sample from the triangular distributions parametrized by lower bound, higher bound, and the mode and sum the results, to learn the distribution of the sums.
Let me also use Julia like @joshualeond.
using Random
using Distributions
Random.seed!(42)
dist = TriangularDist.(lows, highs, means)
world = [sum(rand.(dist)) for i in 1:500_000]
quantile(world, [0.025, 0.5, 0.975])
## 3-element Vector{Float64}:
## 1223.6470001955206
## 1285.2884768397992
## 1347.739670270986
As you can see, the average ends up very close to the result obtained by @joshualeond (+1) using the normal distribution, but the spread of the results is lower because the normal distribution is unbounded, while with triangular distribution we define the hard bounds that limit the variability.
The triangular distribution is hardly the most realistic choice, but it can be useful as a very simple model for simulation given the three-point summaries like the bounds and mode.