To solve this problem, we first need to define the decision variables and the constraints. Let's denote the number of electric cars produced as $E$ and the number of gas cars produced as $G$. The objective is to maximize profit, which can be calculated as $5000E + 3000G$.

The constraints are:
1. The electric car factory can produce at most 3 electric cars per day: $E \leq 3$
2. The gas car factory can produce at most 5 gas cars per day: $G \leq 5$
3. The finishing touches factory can process at most 5 cars of either type per day: $E + G \leq 5$

Now, let's translate this problem into Gurobi code in Python:

```python
from gurobipy import *

# Create a model
m = Model("Car_Production")

# Define the decision variables
E = m.addVar(name="Electric_Cars", vtype=GRB.INTEGER, lb=0)
G = m.addVar(name="Gas_Cars", vtype=GRB.INTEGER, lb=0)

# Define the objective function
m.setObjective(5000*E + 3000*G, GRB.MAXIMIZE)

# Add constraints
m.addConstr(E <= 3, name="Electric_Factory_Capacity")
m.addConstr(G <= 5, name="Gas_Factory_Capacity")
m.addConstr(E + G <= 5, name="Finishing_Touches_Factory_Capacity")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Electric Cars: {E.x}")
    print(f"Gas Cars: {G.x}")
    print(f"Maximum Profit: ${5000*E.x + 3000*G.x}")
else:
    print("No optimal solution found")
```